/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package propres;
import java.util.*;

/**
 *
 * @author david
 */
public class mainddieta {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws Exception{
        // TODO code application logic here
        estrucalim alime = new estrucalim();
Date o = new Date(2008,11,10);
Date u = new Date(2009,12,12);
Interval q = new Interval(o,u);
dieta Y = new dieta();  

alimento b = new alimento("carne",32,10,15,36,"ABCD",q,126735,11111,"principal",110);
alimento c = new alimento("manzana",230,10,15,36,"ABCD",q,540,11111,"secundario",001);
alimento d = new alimento("pera",212,10,15,36,"ABCD",q,2145,11101,"secundario",001);
alimento e = new alimento("pescado",564,10,15,36,"ABCD",q,24432,11111,"principal",011);

alimento f = new alimento("berberechos",20,10,15,36,"ABCD",q,100,11110,"principal",110);
alimento g = new alimento("esparragos",20,10,15,36,"ABCD",q,10000,10110,"secundario",001);
alimento h = new alimento("puneska",1243,10,15,36,"ABCD",q,1234,10111,"secundario",001);
alimento m = new alimento("pii",1234,10,15,36,"ABCD",q,114,10010,"principal",011);

alimento p = new alimento("pollo",322,15,11,12,"ABCD",q,1235,11010,"principal",110);
alimento y = new alimento("postre",120,12,12,43,"ABCD",q,5240,11110,"secundario",001);
alimento r = new alimento("naranja",312,22,13,26,"ABCD",q,245,10111,"secundario",001);
alimento s = new alimento("salmon",142,20,31,31,"ABCD",q,24632,11010,"principal",011);

alime.añadir_alimento(b);
alime.añadir_alimento(c);
alime.añadir_alimento(d);
alime.añadir_alimento(e);

alime.añadir_alimento(f);
alime.añadir_alimento(g);
alime.añadir_alimento(h);
alime.añadir_alimento(m);
alime.añadir_alimento(p);
alime.añadir_alimento(y);
alime.añadir_alimento(r);
alime.añadir_alimento(s);


List<plato> z = new ArrayList();


z = Y.lista_platos(alime.consultar_alimentos(),alime);
plato pla=new plato();

List<String> nece= new ArrayList();
List<String> rest= new ArrayList();
nece.add("carne"); nece.add("manzana");nece.add("pera");
rest.add("puneska");rest.add("pii");rest.add("pescado");
List<Integer> neces=new ArrayList();
neces.add(1);neces.add(2);neces.add(3);
calorias calo=new calorias(2000,209,20);
precio preci=new precio(123000,11000,1000);
System.out.println("------------------------");
necesidades nec= new necesidades(nece,neces);
restricciones rec=new restricciones(rest,neces);
preferencias pref=new preferencias("go",nec,rec,preci,calo);
preferencias prof=new preferencias();

int i = 0;
//---------------------------------
Iterator eot=z.iterator();
/*while(eot.hasNext()){
System.out.print(" plato "+ z.get(i).Get_Nombre());
int[] er=z.get(i).get_comida();
System.out.println(" com "+ er[4]+er[3]+er[2]+er[1]+er[0]);

eot.next();i++;
}*/
//----------------------
Date fech= new Date(108,1,1);
List<dia> F = new ArrayList();
int[] Zo = new int[5];
Zo[0]=3;Zo[1]=0;Zo[2]=3;Zo[3]=0;Zo[4]=0;
//eliminamos genera_c antigua
/*F=Y.genera_c( z,Zo);
List<dia> l2=new ArrayList();
Iterator jop=F.iterator();int n1=0;
              while(jop.hasNext()){
                  if(!l2.contains(F.get(n1))) l2.add(F.get(n1));
                 n1++;
                 jop.next();
              }*/
List<plato> z1 = new ArrayList();
System.out.println("tamaño muestra "+ z.size());
z1.addAll(pla.platos_rest(z,pref));
System.out.println("tamaño no eliminados "+ z.size());
F=new ArrayList();
//System.out.println("n platos "+ z.size());
F=Y.genera_diauto(z1, Zo, pref, 50);
List<dia> l3=new ArrayList();
System.out.println("n resultados  de F "+ F.size());
Iterator jap=F.iterator(); int n1=0;
/*System.out.println("n resultados  de F "+ F.size());

              while(jap.hasNext()){
                  if(!l3.contains(F.get(n1))) {l3.add(F.get(n1));}
                 n1++;
                 jap.next();
              }
n1=0;
while(n1<5){
    System.out.println("sus platos com i="+n1+" son"+F.get(0).lplatos_comida(n1));
n1++;
}n1=0;
while(n1<5){
    System.out.println("sus platos com i="+n1+" son"+F.get(1).lplatos_comida(n1));
n1++;
}

n1=0;

System.out.println("n resultados  de genera_diauto "+ l3.size());
 */

arbol arb=new arbol();
int[] ni=new int[5];
List<int[]> ne= new ArrayList();
int[] na=new int[5];na[1]=1;na[3]=2;
ne.add(Zo);     //11212
ne.add(ni);
ne.add(na);
ne.add(ni);
ne.add(na);
ne.add(ni);
arb.copia_arbol(Y.generar_dietauto(z, fech, pref, 7, ne),pref);
System.out.println("centro "+arb.altura());
System.out.println("centro "+arb.get_Element().consultar_dias());
System.out.println("centro "+arb.get_Element().consultar_dias().get(0).lplatos_dia());
dieta as= arb.get_Element();
Date fech1= new Date(fech.getYear(),fech.getMonth()+2,fech.getDate()+5);
System.out.println(as.listar_cdias(fech, fech1).size());
i=0;


/*arb.copia_arbol(Y.generar_dietauto(z, fech, null,7, ne),null);

System.out.println("centro "+arb.altura());
//System.out.println( "izq "+arb.get_Iz().altura());

System.out.println("  dieta dia 1 "+arb.get_Element().consultar_dias());
dieta diet=new dieta();
diet=arb.get_Iz().get_Iz().get_Iz().get_Element();
System.out.println(diet.consultar_dias());
List<dia> pru=new ArrayList();
pru=diet.consultar_dias();
System.out.println(" tiene dias ="+diet.consultar_dias().size());
System.out.println("  dias ="+diet.consultar_dias());
System.out.println(" elemento dia  1 ="+diet.consultar_dias().get(0).lplatos_dia()+"   dia 2="+diet.consultar_dias().get(1).lplatos_dia()+"   dia 3="+diet.consultar_dias().get(2).lplatos_dia()+"   dia 4="+diet.consultar_dias().get(3).lplatos_dia()+"   dia 6="+diet.consultar_dias().get(5).lplatos_dia());
System.out.println(pru.get(0).lplatos_dia().size()+" "+pru.get(1).lplatos_dia().size()+"  "+pru.get(2).lplatos_dia().size()+"  "+pru.get(3).lplatos_dia().size()+"  "+pru.get(4).lplatos_dia().size()+"  "+pru.get(5).lplatos_dia().size());
System.out.println("  dieta dia altu "+arb.altura());


*/
    }

}
